c encapsulation explained